//! 定义了 runtime 模块内会出现的所有错误类型
//!

use thiserror::Error;

pub mod package;
pub use package::*;

pub mod pattern;
pub use pattern::*;

/// runtime 模块可用的最大 Result 类型
pub type RuntimeResult<T> = core::result::Result<T, Error>;

/// Error (in sgs_runtime)
///
/// runtime 会出现的所有错误类型
#[derive(Debug, Clone, Error)]
pub enum Error {
    /// 无法找到 package index
    ///
    #[error("{0}")]
    PackageNotFound(#[from] PackageNotFoundError),

    /// 无法找到 pattern index
    ///
    #[error("{0}")]
    PatternNotFound(#[from] PatternNotFoundError),
}
